package com.designPattern.p01singleton;

/**
 * @program: 单例模式之饿汉模式
 * @author: luhd
 * @create: 2021-08-23
 */
// 在类初始化时，已经自行实例化
public class BEhan {
    //将自身实例化对象设置为一个属性，并用static、final修饰
    private static final BEhan instance = new BEhan();
    //私有的构造方法
    private BEhan(){}
    //静态方法返回该实例
    public static BEhan getInstance(){
        return instance;
    }

    /**
     * 优点：实现起来简单，没有多线程同步问题。
     *
     * 缺点：当类SingletonTest被加载的时候，会初始化static的instance，静态变量被创建并分配内存空间，
     * 从这以后，这个static的instance对象便一直占着这段内存（即便你还没有用到这个实例），
     * 当类被卸载时，静态变量被摧毁，并释放所占有的内存，因此在某些特定条件下会耗费内存。
     */
}
